package com.liuzu.esys.service.impl;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.liuzu.esys.bo.FinStoragBo;
import com.liuzu.esys.common.LayuiPageVo;
import com.liuzu.esys.mapper.FinStoragMapper;
import com.liuzu.esys.pojo.FinStorag;
import com.liuzu.esys.service.FinStoragService;
import com.liuzu.esys.vo.zhsBarVo;
import com.liuzu.esys.vo.zhsPieVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/**
 * @author : 松松
 * @date : 2022/7/25
 * @desc :
 */
@Service("fsService")
public class FinStoragServiceImpl implements FinStoragService {

    @Autowired
    private FinStoragMapper finStoragMapper;

    //分页查询列表
    @Override
    public LayuiPageVo<FinStorag> fsList(Map<String, Object> params) {
        //mybatis 的 分页查询
        Integer page = Integer.parseInt(params.get("page") + "");
        Integer limit = Integer.parseInt(params.get("limit") + "");
        PageHelper.startPage(page, limit);

        List<FinStorag> fsLists = finStoragMapper.selectByEample(params);

        //mybatis 的 分页数据结构
        PageInfo<FinStorag> fsPageInfo = new PageInfo<>(fsLists);
        //把 mybatis 的分页数据封装到 layui的分页数据结构中
        LayuiPageVo<FinStorag> finStorageLayuiPageVo = new LayuiPageVo<>();
        finStorageLayuiPageVo.setCode(0);  // layui 默认 0 是正确的状态码
        finStorageLayuiPageVo.setMsg("分页列表数据"); // 提示信息
        finStorageLayuiPageVo.setCount((long) fsPageInfo.getTotal()); // 总记录数
        finStorageLayuiPageVo.setData(fsPageInfo.getList());  // 分页的列表数据
        return finStorageLayuiPageVo;
    }


    //添加商品财务信息
    @Override
    public int addfs(FinStorag finStorag) {
        return finStoragMapper.addfs(finStorag);
    }


    //删除商品财务信息
    @Override
    public int delfs(Integer id) {
        return finStoragMapper.delfs(id);
    }


    //修改商品财务信息
    @Override
    public int setfs(FinStorag finStorag) {
        return finStoragMapper.setfs(finStorag);
    }

    //柱状图
    @Override
    public List<zhsBarVo> fsbarvo() {
        return finStoragMapper.fsbarvo();
    }

    //饼状图
    @Override
    public List<zhsPieVo> fspievo() {
        return finStoragMapper.fspievo();
    }

    @Override
    public List<FinStoragBo> selectdim(FinStorag finStorag) {
        List<FinStorag> finStorags = finStoragMapper.selectdim(finStorag);

        List<FinStoragBo> finStoragBos = finStorags.stream()
                .map(f -> new FinStoragBo(f.getId(), f.getSid(), f.getName(), f.getPrice(),
                        f.getNumber(), f.getStorag(), f.getDate(),f.getManager(),f.getSum())
                ).collect(Collectors.toList());

        return finStoragBos;
    }


}
